<?php
class Senha {

    /**
     * Método responsavel em criar senhas
     *
     * @param integer $tamanho Quantidade de caracteres que deve ter a senha
     * @param bool $maiuscula Parametro opcional, informa se a senha pode ter caracteres maiusculos
     * @param bool $minuscula Parametro opcional, informa se a senha pode ter caracteres minusculos
     * @param bool $numeros Parametro opcional, informa se a senha pode ter caracteres numericos
     * @param bool $codigos Parametro opcional, informa se a senha pode ter caracteres especiais
     * @return string Retorna a senha
     */
    public function gera($tamanho = 6, $maiuscula = true, $minuscula = true, $numeros = true, $codigos = false) {
        $maius = "ABCDEFGHIJKLMNOPQRSTUWXYZ";
        $minus = "abcdefghijklmnopqrstuwxyz";
        $numer = "0123456789";
        $codig = '!@#$%&*()-+.,;?{}[]^><:|\/';

        $base = '';
        $base .= ($maiuscula)   ? $maius : '';
        $base .= ($minuscula)   ? $minus : '';
        $base .= ($numeros)     ? $numer : '';
        $base .= ($codigos)     ? $codig : '';

        srand((float) microtime() * 10000000);

        $senha = '';

        for ($i = 0; $i < $tamanho; $i++) {
            $senha .= substr($base, rand(0, strlen($base)-1), 1);
        }

        return $senha;
    }

     public function geraSenhaHospedagem($tamanho = 6, $maiuscula = true,  $numeros = true) {
        $maius = "ABCDEFGHIJKLMNOPQRSTUWXYZ";
        //$minus = "abcdefghijklmnopqrstuwxyz";
        $numer = "0123456789";
        //$codig = '!@#$%&*()-+.,;?{}[]^><:|\/';

        $base = '';
        $base .= ($maiuscula)   ? $maius : '';
        //$base .= ($minuscula)   ? $minus : '';
        $base .= ($numeros)     ? $numer : '';
        //$base .= ($codigos)     ? $codig : '';

        srand((float) microtime() * 10000000);

        $senha = '';

        for ($i = 0; $i < $tamanho; $i++) {
            $senha .= substr($base, rand(0, strlen($base)-1), 1);
        }

        return $senha;
    }

}
?>